একটি OS মডিউল কি?
Node.js OS .
এটি সিস্টেম-সম্পর্কিত তথ্য অ্যাক্সেস প্রদান করে এবং একটি ক্রস-প্ল্যাটফর্ম উপায়ে সাধারণ অপারেটিং সিস্টেমের কাজগুলি সম্পাদন করে।
কম্পিউটারের তথ্য পাওয়া
CPU, মেমরি, প্ল্যাটফর্ম, ইত্যাদি
ব্যবহারকারী এবং নেটওয়ার্ক তথ্য
ব্যবহারকারীর প্রোফাইল এবং নেটওয়ার্ক ইন্টারফেস
কম্পিউটার সম্পদ নিরীক্ষণ
কর্মক্ষমতা এবং সম্পদ ব্যবহার নিরীক্ষণ
OS মডিউল দিয়ে শুরু করা
মডিউল আমদানি করা হচ্ছে
OS মডিউল হল Node.js এর মূল মডিউল, তাই কোন ইনস্টলেশনের প্রয়োজন নেই।
আপনি CommonJS বা ES মডিউল ব্যাকরণ ব্যবহার করে এটি আমদানি করতে পারেন:
CommonJS (Node.js-এ ডিফল্ট)
const os = require('os');
ES Modules (Node.js 14+ or with "type": "module" in package.json)
import os from 'os';
// or
import { arch, platform, cpus } from 'os';
মৌলিক ব্যবহারের উদাহরণ
const os = require('os');
// Basic system information
console.log(`OS Platform: ${os.platform()}`);
console.log(`OS Type: ${os.type()}`);
console.log(`OS Release: ${os.release()}`);
console.log(`CPU Architecture: ${os.arch()}`);
console.log(`Hostname: ${os.hostname()}`);
// Memory information
const totalMemGB = (os.totalmem() / (1024 * 1024 * 1024)).toFixed(2);
const freeMemGB = (os.freemem() / (1024 * 1024 * 1024)).toFixed(2);
console.log(`Memory: ${freeMemGB}GB free of ${totalMemGB}GB`);
// User information
const userInfo = os.userInfo();
console.log(`Current User: ${userInfo.username}`);
console.log(`Home Directory: ${os.homedir()}`);
OS মডিউল নোট:
সমস্ত OS ব্যাচ পদ্ধতি সামঞ্জস্যপূর্ণ এবং তাত্ক্ষণিক ফলাফল প্রদান করে।
কর্মক্ষমতা-সমালোচনামূলক অ্যাপ্লিকেশনের জন্য, os.cpus() বা os.networkInterfaces() এর মতো ঘন ঘন বলা পদ্ধতির ফলাফল ক্যাশে করার কথা বিবেচনা করুন।
কম্পিউটার তথ্য
os.arch()
Node.js CPU .
const os = require('os');
// Get CPU architecture
console.log(`CPU Architecture: ${os.arch()}`);
// Common values:
// - 'x64' for 64-bit systems
// - 'arm' for ARM processors
// - 'arm64' for 64-bit ARM
// - 'ia32' for 32-bit x86
// - 'mips' for MIPS processors
os.platform()
একটি স্ট্রিং প্রদান করে যা অপারেটিং সিস্টেম প্ল্যাটফর্ম সনাক্ত করে।
const os = require('os');
// Get platform information
const platform = os.platform();
console.log(`Platform: ${platform}`);
// Common values:
// - 'darwin' for macOS
// - 'win32' for Windows (both 32-bit and 64-bit)
// - 'linux' for Linux
// - 'freebsd' for FreeBSD
// - 'openbsd' for OpenBSD
os.type()
অপারেটিং সিস্টেমের নাম ফেরত দেয়, যেমন POSIX সিস্টেমে uname দ্বারা বা Windows-এ ver কমান্ড দ্বারা প্রত্যাবর্তন করা হয়।
const os = require('os');
// Get OS type
console.log(`OS Type: ${os.type()}`);
// Examples:
// - 'Linux' on Linux
// - 'Darwin' on macOS
// - 'Windows_NT' on Windows
os.release()
অপারেটিং সিস্টেম রিলিজ নম্বর প্রদান করে।
const os = require('os');
// Get OS release information
console.log(`OS Release: ${os.release()}`);
// Examples:
// - '10.0.19044' on Windows 10
// - '21.6.0' on macOS Monterey
// - '5.15.0-46-generic' on Ubuntu
os.version()
কার্নেল সংস্করণ সনাক্তকারী একটি স্ট্রিং প্রদান করে। উইন্ডোজে, এতে কনফিগারেশন তথ্য অন্তর্ভুক্ত থাকে।
const os = require('os');
// Get kernel version
console.log(`Kernel Version: ${os.version()}`);
// Example output:
// - Windows: 'Windows 10 Enterprise 10.0.19044'
// - Linux: '#49-Ubuntu SMP Tue Aug 2 08:49:28 UTC 2022'
// - macOS: 'Darwin Kernel Version 21.6.0: ...'
ব্যবহারকারী এবং পরিবেশ
os.userInfo()
বর্তমানে ব্যবহারকারী সম্পর্কে দরকারী তথ্য প্রদান করে.
const os = require('os');
// Get current user information
const user = os.userInfo();
console.log('User Information:');
console.log(`- Username: ${user.username}`);
console.log(`- User ID: ${user.uid}`);
console.log(`- Group ID: ${user.gid}`);
console.log(`- Home Directory: ${user.homedir}`);
// On Windows, you can also get the user's domain
if (os.platform() === 'win32') {
console.log(`- Domain: ${user.domain || 'N/A'}`);
}
// Note: user.shell is only available on POSIX platforms
if (user.shell) {
console.log(`- Default Shell: ${user.shell}`);
}
os.homedir()
বর্তমান ব্যবহারকারীর হোম ডিরেক্টরি প্রদান করে।
const os = require('os');
const path = require('path');
// Get the home directory
const homeDir = os.homedir();
console.log(`Home Directory: ${homeDir}`);
// Example: Create a path to a config file in the user's home directory
const configPath = path.join(homeDir, '.myapp', 'config.json');
console.log(`Config file will be saved to: ${configPath}`);
os.hostname()
অপারেটিং সিস্টেমের হোস্টনাম প্রদান করে।
const os = require('os');
// Get the system hostname
const hostname = os.hostname();
console.log(`Hostname: ${hostname}`);
// Example: Use hostname in logging or configuration
console.log(`Server started on ${hostname} at ${new Date().toISOString()}`);
os.tmpdir()
অপারেটিং সিস্টেমের ডিফল্ট অস্থায়ী ফাইলগুলির জন্য একটি ডিরেক্টরি প্রদান করে।
const os = require('os');
// Get the system default temp dir
console.log(`Temporary Directory: ${os.tmpdir()}`);
কম্পিউটার সম্পদ
os.cpus()
প্রতিটি যৌক্তিক CPU কোর সম্পর্কে তথ্য ধারণকারী বস্তুর একটি অ্যারে প্রদান করে।
const os = require('os');
// Get CPU information
const cpus = os.cpus();
console.log(`Number of CPU Cores: ${cpus.length}`);
// Display information about each CPU core
cpus.forEach((cpu, index) => {
console.log(`\nCPU Core ${index + 1}:`);
console.log(`- Model: ${cpu.model}`);
console.log(`- Speed: ${cpu.speed} MHz`);
console.log('- Times (ms):', {
user: cpu.times.user,
nice: cpu.times.nice,
sys: cpu.times.sys,
idle: cpu.times.idle,
irq: cpu.times.irq
});
});
CPU ব্যবহার গণনা করা হচ্ছে (উদাহরণস্বরূপ, দুটি পরিমাপ প্রয়োজন)
// Calculate total CPU usage (example, requires two measurements)
function calculateCpuUsage(prevCpus) {
const currentCpus = os.cpus();
const usage = [];
for (let i = 0; i < currentCpus.length; i++) {
const current = currentCpus[i];
const prev = prevCpus ? prevCpus[i] : { times: { user: 0, nice: 0, sys: 0, idle: 0, irq: 0 } };
const prevIdle = prev.times.idle;
const idle = current.times.idle - prevIdle;
let total = 0;
for (const type in current.times) {
total += current.times[type] - (prev.times[type] || 0);
}
const usagePercent = ((1 - idle / total) * 100).toFixed(1);
usage.push(parseFloat(usagePercent));
}
return {
perCore: usage,
average: (usage.reduce((a, b) => a + b, 0) / usage.length).toFixed(1),
cpus: currentCpus
};
}
// Example usage of CPU usage calculation
console.log('\nCPU Usage (requires two measurements):');
const firstMeasure = os.cpus();
// Simulate some CPU work
for (let i = 0; i < 1000000000; i++) {}
const usage = calculateCpuUsage(firstMeasure);
console.log(`Average CPU Usage: ${usage.average}%`);
os.totalmem() এবং os.freemem()
বাইটে যথাক্রমে মোট এবং ফ্রি সিস্টেম মেমরি ফেরত দেয়।
const os = require('os');
// Format bytes to human-readable format
function formatBytes(bytes, decimals = 2) {
if (bytes === 0) return '0 Bytes';
const k = 1024;
const dm = decimals < 0 ? 0 : decimals;
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
const i = Math.floor(Math.log(bytes) / Math.log(k));
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
}
// Get memory information
const totalMem = os.totalmem();
const freeMem = os.freemem();
const usedMem = totalMem - freeMem;
const usagePercent = ((usedMem / totalMem) * 100).toFixed(2);
console.log('Memory Information:');
console.log(`- Total Memory: ${formatBytes(totalMem)}`);
console.log(`- Free Memory: ${formatBytes(freeMem)} (${((freeMem / totalMem) * 100).toFixed(2)}%)`);
console.log(`- Used Memory: ${formatBytes(usedMem)} (${usagePercent}%)`);
// Example: Check if there's enough free memory
const MIN_FREE_MEMORY = 200 * 1024 * 1024; // 200MB
if (freeMem < MIN_FREE_MEMORY) {
console.warn('Warning: Low on memory!');
} else {
console.log('System has sufficient memory available');
}
os.loadavg()
1, 5, এবং 15 মিনিটের গড় লোড সহ একটি অ্যারে প্রদান করে।
const os = require('os');
// Get load averages
const loadAverages = os.loadavg();
console.log('System Load Averages (1, 5, 15 min):', loadAverages);
// On Linux/Unix, load average represents the average system load over the last 1, 5, and 15 minutes
// The values represent the number of processes in the system run queue
const [oneMin, fiveMin, fifteenMin] = loadAverages;
const cpuCount = os.cpus().length;
console.log(`1-minute load average: ${oneMin.toFixed(2)} (${(oneMin / cpuCount * 100).toFixed(1)}% of ${cpuCount} cores)`);
console.log(`5-minute load average: ${fiveMin.toFixed(2)}`);
console.log(`15-minute load average: ${fifteenMin.toFixed(2)}`);
// Example: Check if system is under heavy load
const isSystemOverloaded = oneMin > cpuCount * 1.5;
if (isSystemOverloaded) {
console.warn('Warning: System is under heavy load!');
} else {
console.log('System load is normal');
}
নেটওয়ার্ক তথ্য
os.networkInterfaces()
নেটওয়ার্ক ইন্টারফেস ধারণকারী একটি বস্তু প্রদান করে যেখানে একটি নেটওয়ার্ক ঠিকানা বরাদ্দ করা হয়েছে।
const os = require('os');
// Get network interfaces information
const networkInterfaces = os.networkInterfaces();
console.log('Network Interfaces:');
// Iterate over each network interface
Object.entries(networkInterfaces).forEach(([name, addresses]) => {
console.log(`\nInterface: ${name}`);
addresses.forEach((address) => {
console.log(`- Family: ${address.family}`);
console.log(` Address: ${address.address}`);
console.log(` Netmask: ${address.netmask}`);
console.log(` MAC: ${address.mac || 'N/A'}`);
console.log(` Internal: ${address.internal}`);
});
});
// Example: Find the first non-internal IPv4 address
function getLocalIpAddress() {
const interfaces = os.networkInterfaces();
for (const name of Object.keys(interfaces)) {
for (const iface of interfaces[name]) {
if (iface.family === 'IPv4' && !iface.internal) {
return iface.address;
}
}
}
return '127.0.0.1'; // Fallback to localhost
}
const localIp = getLocalIpAddress();
console.log(`\nLocal IP Address: ${localIp}`);
os.uptime()
সেকেন্ডে সিস্টেম চলমান সময় ফেরত দেয়।
const os = require('os');
// Get system uptime in seconds
const uptime = os.uptime();
console.log(`System Uptime: ${uptime} seconds`);
// Format uptime in a more readable way
const uptimeDays = Math.floor(uptime / (60 * 60 * 24));
const uptimeHours = Math.floor((uptime % (60 * 60 * 24)) / (60 * 60));
const uptimeMinutes = Math.floor((uptime % (60 * 60)) / 60);
const uptimeSeconds = Math.floor(uptime % 60);
console.log(`System has been running for: ${uptimeDays} days, ${uptimeHours} hours, ${uptimeMinutes} minutes, ${uptimeSeconds} seconds`);
OS ধ্রুবক এবং ইউটিলিটি
os.constants
একটি সাধারণভাবে ব্যবহৃত অপারেটিং সিস্টেম ত্রুটি কোড, প্রক্রিয়া সংকেত, এবং তাই জন্য নির্দিষ্ট ধ্রুবক সহ একটি বস্তু প্রদান করে।
const os = require('os');
// Get all signal constants
console.log('Signal Constants:', os.constants.signals);
// Example: Handle common signals
process.on('SIGINT', () => {
console.log('Received SIGINT. Performing cleanup...');
process.exit(0);
});
process.on('SIGTERM', () => {
console.log('Received SIGTERM. Shutting down gracefully...');
process.exit(0);
});
console.log('Process is running. Press Ctrl+C to exit.');
os.EOL
বর্তমান অপারেটিং সিস্টেমের জন্য একটি লাইন শেষ চিহ্নিতকারী প্রদান করে।
const os = require('os');
const fs = require('fs');
// Get the end-of-line marker for the current OS
console.log('End of Line character:', JSON.stringify(os.EOL));
// Example: Write a file with platform-specific line endings
const lines = [
'First line',
'Second line',
'Third line'
];
// Join lines with the correct EOL character
const content = lines.join(os.EOL);
fs.writeFileSync('output.txt', content);
console.log('File written with platform-appropriate line endings');
সর্বোত্তম অনুশীলন
1. লেনের সঠিক হ্যান্ডলিং
ক্রস-প্ল্যাটফর্ম সামঞ্জস্য নিশ্চিত করতে সর্বদা ফাইল পাথের জন্য স্ট্রিং সংযোগের পরিবর্তে path.join() ব্যবহার করুন।
// Good
const filePath = path.join(os.homedir(), 'app', 'config.json');
// Bad (won't work on Windows)
const badPath = `${os.homedir()}/app/config.json`;
2. os.EOL এর সাথে সতর্ক থাকুন
ফাইল লেখার সময় লাইন ব্রেক সম্পর্কে সচেতন থাকুন। ক্রস-প্ল্যাটফর্ম সামঞ্জস্যের জন্য os.EOL ব্যবহার করুন।
const content = `First Line${os.EOL}Second Line${os.EOL}Third Line`;
fs.writeFileSync('output.txt', content, 'utf8');
3. মেমরির সীমাবদ্ধতা পরিচালনা করা
মেমরি ইনটেনসিভ অপারেশন করার আগে উপলব্ধ মেমরি পরীক্ষা করুন।
const MIN_FREE_MEMORY_MB = 500; // 500MB minimum free memory
function canPerformMemoryIntensiveOperation() {
const freeMemMB = os.freemem() / (1024 * 1024);
return freeMemMB > MIN_FREE_MEMORY_MB;
}
if (!canPerformMemoryIntensiveOperation()) {
console.warn('Not enough free memory to perform this operation');
// Handle the error appropriately
}
ব্যবহারিক উদাহরণ
সিস্টেম তথ্য ড্যাশবোর্ড
এই উদাহরণটি একটি বিস্তারিত সিস্টেম তথ্য প্রতিবেদন তৈরি করে:
const os = require('os');
function getSystemInfo() {
const info = {
os: {
type: os.type(),
platform: os.platform(),
architecture: os.arch(),
release: os.release(),
hostname: os.hostname(),
uptime: formatUptime(os.uptime())
},
user: {
username: os.userInfo().username,
homedir: os.homedir(),
tempdir: os.tmpdir()
},
memory: {
total: formatBytes(os.totalmem()),
free: formatBytes(os.freemem()),
usage: `${((1 - os.freemem() / os.totalmem()) * 100).toFixed(2)}%`
},
cpu: {
model: os.cpus()[0].model,
cores: os.cpus().length,
speed: `${os.cpus()[0].speed} MHz`
}
};
return info;
}
function formatUptime(seconds) {
const days = Math.floor(seconds / (60 * 60 * 24));
const hours = Math.floor((seconds % (60 * 60 * 24)) / (60 * 60));
const minutes = Math.floor((seconds % (60 * 60)) / 60);
const secs = Math.floor(seconds % 60);
return `${days}d ${hours}h ${minutes}m ${secs}s`;
}
function formatBytes(bytes) {
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
if (bytes === 0) return '0 Bytes';
const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));
return `${(bytes / Math.pow(1024, i)).toFixed(2)} ${sizes[i]}`;
}
// Display the system information dashboard
const systemInfo = getSystemInfo();
console.log('======= SYSTEM INFORMATION DASHBOARD =======');
console.log(JSON.stringify(systemInfo, null, 2));
// Display in a more formatted way
console.log('\n======= FORMATTED SYSTEM INFORMATION =======');
console.log(`OS: ${systemInfo.os.type} (${systemInfo.os.platform} ${systemInfo.os.architecture})`);
console.log(`Version: ${systemInfo.os.release}`);
console.log(`Hostname: ${systemInfo.os.hostname}`);
console.log(`Uptime: ${systemInfo.os.uptime}`);
console.log(`User: ${systemInfo.user.username}`);
console.log(`Home Directory: ${systemInfo.user.homedir}`);
console.log(`CPU: ${systemInfo.cpu.model}`);
console.log(`Cores: ${systemInfo.cpu.cores}`);
console.log(`Speed: ${systemInfo.cpu.speed}`);
console.log(`Memory Total: ${systemInfo.memory.total}`);
console.log(`Memory Free: ${systemInfo.memory.free}`);
console.log(`Memory Usage: ${systemInfo.memory.usage}`);
রিসোর্স সুপারভাইজার
এই উদাহরণটি একটি মৌলিক সংস্থান মনিটর তৈরি করে যা সেকেন্ডে একবার আপডেট হয়:
const os = require('os');
function monitorResources() {
console.clear(); // Clear console for a cleaner display
const now = new Date().toLocaleTimeString();
console.log(`======= RESOURCE MONITOR (${now}) =======`);
// CPU Usage
const cpus = os.cpus();
console.log(`\nCPU Cores: ${cpus.length}`);
// Calculate CPU usage (this is approximate since we need two measurements)
const cpuUsage = cpus.map((cpu, index) => {
const total = Object.values(cpu.times).reduce((acc, tv) => acc + tv, 0);
const idle = cpu.times.idle;
const usage = ((total - idle) / total * 100).toFixed(1);
return `Core ${index}: ${usage}% used`;
});
console.log(cpuUsage.join('\n'));
// Memory Usage
const totalMem = os.totalmem();
const freeMem = os.freemem();
const usedMem = totalMem - freeMem;
console.log('\nMemory Usage:');
console.log(`Total: ${formatBytes(totalMem)}`);
console.log(`Used: ${formatBytes(usedMem)} (${(usedMem / totalMem * 100).toFixed(1)}%)`);
console.log(`Free: ${formatBytes(freeMem)} (${(freeMem / totalMem * 100).toFixed(1)}%)`);
// System Uptime
console.log(`\nSystem Uptime: ${formatUptime(os.uptime())}`);
// Process Info
console.log('\nProcess Information:');
console.log(`PID: ${process.pid}`);
console.log(`Memory Usage: ${formatBytes(process.memoryUsage().rss)}`);
console.log(`User: ${os.userInfo().username}`);
}
function formatBytes(bytes) {
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
if (bytes === 0) return '0 Bytes';
const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));
return `${(bytes / Math.pow(1024, i)).toFixed(2)} ${sizes[i]}`;
}
function formatUptime(seconds) {
const days = Math.floor(seconds / (60 * 60 * 24));
const hours = Math.floor((seconds % (60 * 60 * 24)) / (60 * 60));
const minutes = Math.floor((seconds % (60 * 60)) / 60);
const secs = Math.floor(seconds % 60);
return `${days}d ${hours}h ${minutes}m ${secs}s`;
}
// Initial display
monitorResources();
// Update every second (note: in a real application, you might not want
// to update this frequently as it uses CPU resources)
const intervalId = setInterval(monitorResources, 1000);
// In a real application, you would need to handle cleanup:
// clearInterval(intervalId);
// For this example, we'll run for 10 seconds then stop
console.log('Monitor will run for 10 seconds...');
setTimeout(() => {
clearInterval(intervalId);
console.log('\nResource monitoring stopped.');
}, 10000);
প্ল্যাটফর্ম-নির্দিষ্ট আচরণ
এই উদাহরণটি দেখায় কিভাবে অপারেটিং সিস্টেমের উপর ভিত্তি করে আপনার অ্যাপ্লিকেশনের আচরণ সামঞ্জস্য করতে হয়:
const os = require('os');
const fs = require('fs');
const path = require('path');
// Function to determine a good location for app data based on the OS
function getAppDataPath(appName) {
const platform = os.platform();
let appDataPath;
switch (platform) {
case 'win32': // Windows
appDataPath = path.join(process.env.APPDATA || '', appName);
break;
case 'darwin': // macOS
appDataPath = path.join(os.homedir(), 'Library', 'Application Support', appName);
break;
case 'linux': // Linux
appDataPath = path.join(os.homedir(), '.config', appName);
break;
default: // Fallback for other platforms
appDataPath = path.join(os.homedir(), `.${appName}`);
}
return appDataPath;
}
// Function to get appropriate command based on OS
function getOpenCommand() {
const platform = os.platform();
switch (platform) {
case 'win32': // Windows
return 'start';
case 'darwin': // macOS
return 'open';
default: // Linux and others
return 'xdg-open';
}
}
// Example usage
const appName = 'myapp';
const appDataPath = getAppDataPath(appName);
const openCommand = getOpenCommand();
console.log(`OS Platform: ${os.platform()}`);
console.log(`OS Type: ${os.type()}`);
console.log(`Recommended App Data Path: ${appDataPath}`);
console.log(`Open Command: ${openCommand}`);
// Example of platform-specific behavior
console.log('\nPlatform-Specific Actions:');
if (os.platform() === 'win32') {
console.log('- Using Windows-specific registry functions');
console.log('- Setting up Windows service');
} else if (os.platform() === 'darwin') {
console.log('- Using macOS keychain for secure storage');
console.log('- Setting up launchd agent');
} else if (os.platform() === 'linux') {
console.log('- Using Linux systemd for service management');
console.log('- Setting up dbus integration');
}
// Example of checking for available memory and adjusting behavior
const availableMemGB = os.freemem() / (1024 * 1024 * 1024);
console.log(`\nAvailable Memory: ${availableMemGB.toFixed(2)} GB`);
if (availableMemGB < 0.5) {
console.log('Low memory mode activated: reducing cache size and disabling features');
} else if (availableMemGB > 4) {
console.log('High memory mode activated: increasing cache size and enabling all features');
} else {
console.log('Standard memory mode activated: using default settings');
}
// Example of CPU core detection for parallel processing
const cpuCount = os.cpus().length;
console.log(`\nCPU Cores: ${cpuCount}`);
const recommendedWorkers = Math.max(1, cpuCount - 1); // Leave one core for the system
console.log(`Recommended worker processes: ${recommendedWorkers}`);
সারাংশ
Node.js OS .
এটি দিয়ে, আপনি করতে পারেন:
এই দক্ষতা বিশেষভাবে দরকারী:
ক্রস-প্ল্যাটফর্ম অ্যাপ্লিকেশন
হোস্ট পরিবেশের সাথে খাপ খায়
কম্পিউটার সম্পদ নিরীক্ষণ
কর্মক্ষমতা এবং সম্পদ ব্যবহার নিরীক্ষণ
ডায়াগনস্টিক সরঞ্জাম
ডায়াগনস্টিক সরঞ্জামগুলির বিকাশ
OS মডিউল ব্যবহার করে, আপনি আপনার Node.js অ্যাপ্লিকেশনগুলিকে আরও শক্তিশালী, দক্ষ এবং বিভিন্ন অপারেটিং পরিবেশে মানিয়ে নিতে পারেন।
অনুশীলন করুন
অপারেটিং সিস্টেম সম্পর্কিত অ্যাপ্লিকেশন পদ্ধতি এবং বৈশিষ্ট্য প্রদান করে এমন উপযুক্ত মডিউলটি টেনে আনুন এবং ফেলে দিন।
The ______ module.